home *** CD-ROM | disk | FTP | other *** search
- /* Listing1: © Clemens Marschner, 1994
- * virtuelle Funktionen */
-
- #include <stream.h>
-
- struct Basis {
- int x;
-
- virtual void Print() { cout << x << '\n'; }
- // Funktion ist virtuell
-
- Basis(int i) : x(i) {}
- // Der Konstruktor initialisiert nur x. Elementare
- // Typen besitzen ebenso Konstruktoren wie Klassen.
- };
-
- struct Abgeleitet : Basis {
- char *str;
-
- void Print() { cout << str << '\n'; }
- Abgeleitet(char* strp) : str(strp), Basis(0) {}
- Abgeleitet() : Basis(0) {}
- };
-
- void main(void)
- {
- Basis b(42);
- Abgeleitet a("Magische Zahl");
- Basis *x[2];
- x[0] = &b;
- x[1] = &a;
- // Das Array besteht nun aus einem Gemisch aus
- // den Klassen Basis und Abgeleitet
- for(int i = 0; i<2; i++) {
- x[i]->Print();
- }
- }
-
-